home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / snip0493.zip / UUDECODE.C < prev    next >
C/C++ Source or Header  |  1993-04-05  |  1KB  |  42 lines

  1. /*
  2. ** by: John Lots
  3. ** patched up for BC++ 3.1 by Alan Eldridge 10/12/92
  4. **     (UUCP: alane@wozzle.linet.org, FIDO: 1:272/38.473)
  5. */
  6.  
  7. #include        <stdio.h>
  8. #include        <stdlib.h>
  9. #define         DEC(c)  (char)(((c)-' ')&077)
  10.  
  11. int main()
  12. {
  13.       int     n;
  14.       char    buf[128],a,b,c,d;
  15.  
  16.       scanf("begin %o ", &n);
  17.       gets(buf);                              /* filename */
  18.       if (!freopen(buf, "wb", stdout))         /* oops.. */
  19.       {
  20.             perror(buf);
  21.             exit(1);
  22.       }
  23.       while ((n=getchar())!=EOF&&((n=DEC(n))!=0))
  24.       {
  25.             while (n>0)
  26.             {
  27.                   a=DEC(getchar());
  28.                   b=DEC(getchar());
  29.                   c=DEC(getchar());
  30.                   d=DEC(getchar());
  31.                   if (n-->0)
  32.                         putchar((a<<2)|(b>>4));
  33.                   if (n-->0)
  34.                         putchar((b<<4)|(c>>2));
  35.                   if (n-->0)
  36.                         putchar((c<<6)|d);
  37.             }
  38.             n=getchar();                    /* skip \n */
  39.       }
  40.       return 0;
  41. }
  42.